template(name="setting")
  .setting-content
    unless currentUser.isAdmin
      | {{_ 'error-notAuthorized'}}
    else
      .content-title.ext-box
        if isGeneralSetting
          span
            | 🔑
            | {{_ 'registration'}}
        else if isEmailSetting
          span
            | ✉️
            | {{_ 'email'}}
        else if isAccountSetting
          span
            | 👥
            | {{_ 'accounts'}}
        else if isTableVisibilityModeSetting
          span
            | 👁️
            | {{_ 'tableVisibilityMode'}}
        else if isAnnouncementSetting
          span
            | 📢
            | {{_ 'admin-announcement'}}
        else if isAccessibilitySetting
          span
            | ♿
            | {{_ 'accessibility'}}
        else if isLayoutSetting
          span
            | 🔗
            | {{_ 'layout'}}
        else if isWebhookSetting
          span
            | 🌐
            | {{_ 'global-webhook'}}
        else if isAttachmentSettings
          span
            | 📎
            | {{_ 'attachments'}}
        else if isCronSettings
          span
            | ⏰
            | {{_ 'cron'}}
      .content-body
        .side-menu
          ul
            li(class="{{#if isGeneralSetting}}active{{/if}}")
              a.js-setting-menu(data-id="registration-setting")
                | 🔑
                | {{_ 'registration'}}
            unless isSandstorm
              li(class="{{#if isEmailSetting}}active{{/if}}")
                a.js-setting-menu(data-id="email-setting")
                  | ✉️
                  | {{_ 'email'}}
            li(class="{{#if isAccountSetting}}active{{/if}}")
              a.js-setting-menu(data-id="account-setting")
                | 👥
                | {{_ 'accounts'}}
            li(class="{{#if isTableVisibilityModeSetting}}active{{/if}}")
              a.js-setting-menu(data-id="tableVisibilityMode-setting")
                | 👁️
                | {{_ 'tableVisibilityMode'}}
            li(class="{{#if isAnnouncementSetting}}active{{/if}}")
              a.js-setting-menu(data-id="announcement-setting")
                | 📢
                | {{_ 'admin-announcement'}}
            li(class="{{#if isAccessibilitySetting}}active{{/if}}")
              a.js-setting-menu(data-id="accessibility-setting")
                | ♿
                | {{_ 'accessibility'}}
            li(class="{{#if isLayoutSetting}}active{{/if}}")
              a.js-setting-menu(data-id="layout-setting")
                | 🔗
                | {{_ 'layout'}}
            li(class="{{#if isWebhookSetting}}active{{/if}}")
              a.js-setting-menu(data-id="webhook-setting")
                | 🌐
                | {{_ 'global-webhook'}}
            li(class="{{#if isAttachmentSettings}}active{{/if}}")
              a.js-setting-menu(data-id="attachment-settings")
                | 📎
                | {{_ 'attachments'}}
            li(class="{{#if isCronSettings}}active{{/if}}")
              a.js-setting-menu(data-id="cron-settings")
                | ⏰
                | {{_ 'cron'}}
        .main-body
          if isLoading
            +spinner
          else if isAttachmentSettings
            ul#attachment-setting.setting-detail
              li
                h3 {{_ 'attachment-storage-configuration'}}
                .form-group
                  label {{_ 'writable-path'}}
                  input.wekan-form-control#filesystem-path(type="text" value="{{filesystemPath}}" readonly)
                  small.form-text.text-muted {{_ 'filesystem-path-description'}}
                
                .form-group
                  label {{_ 'attachments-path'}}
                  input.wekan-form-control#attachments-path(type="text" value="{{attachmentsPath}}" readonly)
                  small.form-text.text-muted {{_ 'attachments-path-description'}}
                
                .form-group
                  label {{_ 'avatars-path'}}
                  input.wekan-form-control#avatars-path(type="text" value="{{avatarsPath}}" readonly)
                  small.form-text.text-muted {{_ 'avatars-path-description'}}

              li
                h3 {{_ 'mongodb-gridfs-storage'}}
                .form-group
                  label {{_ 'gridfs-enabled'}}
                  input.wekan-form-control#gridfs-enabled(type="checkbox" checked="{{gridfsEnabled}}" disabled)
                  small.form-text.text-muted {{_ 'gridfs-enabled-description'}}

              li
                h3 {{_ 's3-minio-storage'}}
                .form-group
                  label {{_ 's3-enabled'}}
                  input.wekan-form-control#s3-enabled(type="checkbox" checked="{{s3Enabled}}" disabled)
                  small.form-text.text-muted {{_ 's3-enabled-description'}}
                
                .form-group
                  label {{_ 's3-endpoint'}}
                  input.wekan-form-control#s3-endpoint(type="text" value="{{s3Endpoint}}" readonly)
                  small.form-text.text-muted {{_ 's3-endpoint-description'}}
                
                .form-group
                  label {{_ 's3-bucket'}}
                  input.wekan-form-control#s3-bucket(type="text" value="{{s3Bucket}}" readonly)
                  small.form-text.text-muted {{_ 's3-bucket-description'}}
                
                .form-group
                  label {{_ 's3-region'}}
                  input.wekan-form-control#s3-region(type="text" value="{{s3Region}}" readonly)
                  small.form-text.text-muted {{_ 's3-region-description'}}
                
                .form-group
                  label {{_ 's3-access-key'}}
                  input.wekan-form-control#s3-access-key(type="text" placeholder="{{_ 's3-access-key-placeholder'}}" readonly)
                  small.form-text.text-muted {{_ 's3-access-key-description'}}
                
                .form-group
                  label {{_ 's3-secret-key'}}
                  input.wekan-form-control#s3-secret-key(type="password" placeholder="{{_ 's3-secret-key-placeholder'}}")
                  small.form-text.text-muted {{_ 's3-secret-key-description'}}
                
                .form-group
                  label {{_ 's3-ssl-enabled'}}
                  input.wekan-form-control#s3-ssl-enabled(type="checkbox" checked="{{s3SslEnabled}}" disabled)
                  small.form-text.text-muted {{_ 's3-ssl-enabled-description'}}
                
                .form-group
                  label {{_ 's3-port'}}
                  input.wekan-form-control#s3-port(type="number" value="{{s3Port}}" readonly)
                  small.form-text.text-muted {{_ 's3-port-description'}}
                
                .form-group
                  button.js-test-s3-connection.btn.btn-secondary {{_ 'test-s3-connection'}}
                  button.js-save-s3-settings.btn.btn-primary {{_ 'save-s3-settings'}}
          else if isCronSettings
            ul#cron-setting.setting-detail
              li
                h3 {{_ 'cron-migrations'}}
                .form-group
                  label {{_ 'migration-status'}}
                  .status-indicator
                    span.status-label {{_ 'status'}}:
                    span.status-value {{migrationStatus}}
                  .progress-section
                    .progress
                      .progress-bar(role="progressbar" style="width: {{migrationProgress}}%" aria-valuenow="{{migrationProgress}}" aria-valuemin="0" aria-valuemax="100") 
                        | {{migrationProgress}}%
                    .progress-text
                      | {{migrationProgress}}% {{_ 'complete'}}
                
                .form-group
                  button.js-start-all-migrations.btn.btn-primary {{_ 'start-all-migrations'}}
                  button.js-pause-all-migrations.btn.btn-warning {{_ 'pause-all-migrations'}}
                  button.js-stop-all-migrations.btn.btn-danger {{_ 'stop-all-migrations'}}
              
              li
                h3 {{_ 'board-operations'}}
                .form-group
                  label {{_ 'scheduled-board-operations'}}
                  button.js-schedule-board-cleanup.btn.btn-primary {{_ 'schedule-board-cleanup'}}
                  button.js-schedule-board-archive.btn.btn-warning {{_ 'schedule-board-archive'}}
                  button.js-schedule-board-backup.btn.btn-info {{_ 'schedule-board-backup'}}
              
              li
                h3 {{_ 'cron-jobs'}}
                .form-group
                  label {{_ 'active-cron-jobs'}}
                  each cronJobs
                    .job-item
                      .job-info
                        .job-name {{name}}
                        .job-schedule {{schedule}}
                        .job-description {{description}}
                      .job-actions
                        button.js-pause-job.btn.btn-sm.btn-warning(data-job-id="{{_id}}") {{_ 'pause'}}
                        button.js-delete-job.btn.btn-sm.btn-danger(data-job-id="{{_id}}") {{_ 'delete'}}
                  .add-job-section
                    button.js-add-cron-job.btn.btn-success {{_ 'add-cron-job'}}
          else if isGeneralSetting
            +general
          else if isEmailSetting
            unless isSandstorm
              +email
          else if isAccountSetting
            +accountSettings
          else if isTableVisibilityModeSetting
            +tableVisibilityModeSettings
          else if isAnnouncementSetting
            +announcementSettings
          else if isAccessibilitySetting
            +accessibilitySettings
          else if isLayoutSetting
            +layoutSettings
          else if isWebhookSetting
            +webhookSettings

template(name="webhookSettings")
  span
     +outgoingWebhooksPopup

template(name="general")
  ul#registration-setting.setting-detail
    li
      a.flex.js-toggle-forgot-password
        .materialCheckBox(class="{{#if currentSetting.disableForgotPassword}}is-checked{{/if}}")

        span {{_ 'disable-forgot-password'}}
    li
      a.flex.js-toggle-registration
        .materialCheckBox(class="{{#if currentSetting.disableRegistration}}is-checked{{/if}}")

        span {{_ 'disable-self-registration'}}
    li
      .invite-people(class="{{#if currentSetting.disableRegistration}}{{else}}hide{{/if}}")
        ul
          li
            .title {{_ 'invite-people'}}
            textarea#email-to-invite.wekan-form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
          li
            .title {{_ 'to-boards'}}
            .bg-white
              each boards
                a.option.flex.js-toggle-board-choose(id= _id)
                  .materialCheckBox(data-id= _id)

                  span= title

          li
            button.js-email-invite.primary {{_ 'invite'}}

template(name='email')
  ul#email-setting.setting-detail
    //if isSandstorm
    //  li.smtp-form
    //    .title {{_ 'smtp-host'}}
    //    .description {{_ 'smtp-host-description'}}
    //    .form-group
    //      input.wekan-form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
    //  li.smtp-form
    //    .title {{_ 'smtp-port'}}
    //    .description {{_ 'smtp-port-description'}}
    //    .form-group
    //      input.wekan-form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
    //  li.smtp-form
    //    .title {{_ 'smtp-username'}}
    //    .form-group
    //      input.wekan-form-control#mail-server-u"accounts-allowUserNameChange": "Allow Username Change",sername(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
    //  li.smtp-form
    //    .title {{_ 'smtp-password'}}
    //    .form-group
    //      input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="")
    //  li.smtp-form
    //    .title {{_ 'smtp-tls'}}
    //    .form-group
    //      a.flex.js-toggle-tls
    //        .materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
    //
    //        span {{_ 'smtp-tls-description'}}
    //
    //  li.smtp-form
    //    .title {{_ 'send-from'}}
    //    .form-group
    //      input.wekan-form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
    //
    //  li
    //    button.js-save.primary {{_ 'save'}}

    li
      button.js-send-smtp-test-email.primary {{_ 'send-smtp-test'}}

template(name='tableVisibilityModeSettings')
  ul#tableVisibilityMode-setting.setting-detail
    li.tableVisibilityMode-form
      .title {{_ 'tableVisibilityMode-allowPrivateOnly'}}
      .form-group.flex
        input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="true" checked="{{#if allowPrivateOnly}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="false" checked="{{#unless allowPrivateOnly}}checked{{/unless}}")
        label {{_ 'no'}}
      button.js-tableVisibilityMode-save.primary {{_ 'save'}}

template(name='accountSettings')
  ul#account-setting.setting-detail
    li.accounts-form
      .title {{_ 'accounts-allowEmailChange'}}
      .form-group.flex
        input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
        label {{_ 'no'}}
      .title {{_ 'accounts-allowUserNameChange'}}
      .form-group.flex
        input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
        label {{_ 'no'}}
      .title {{_ 'accounts-allowUserDelete'}}
      .form-group.flex
        input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}")
        label {{_ 'no'}}
      button.js-accounts-save.primary {{_ 'save'}}

    // Brute force lockout settings moved to People/Locked Users section

template(name='announcementSettings')
  ul#announcement-setting.setting-detail
    li
      a.flex.js-toggle-activemessage
        .materialCheckBox(class="{{#if currentAnnouncements.enabled}}is-checked{{/if}}")

        span {{_ 'admin-announcement-active'}}
    li
      .admin-announcement(class="{{#if currentAnnouncements.enabled}}{{else}}hide{{/if}}")
        ul
          li
            .title {{_ 'admin-announcement-title'}}
            textarea#admin-announcement.wekan-form-control= currentAnnouncements.body
          li
            button.js-announcement-save.primary {{_ 'save'}}

template(name='accessibilitySettings')
  ul#accessibility-setting.setting-detail
    li
      a(href="/accessibility" style="text-decoration: underline; color: blue;") {{_ 'accessibility'}}
    li
      a.flex.js-toggle-accessibility
        .materialCheckBox(class="{{#if currentAccessibility.enabled}}is-checked{{/if}}")

        span {{_ 'accessibility-page-enabled'}}
    li
      .accessibility-content(class="{{#if currentAccessibility.enabled}}{{else}}hide{{/if}}")
        ul
          li
            .title {{_ 'accessibility-title'}}
            textarea#admin-accessibility-title.wekan-form-control= currentAccessibility.title
          li
            .title {{_ 'accessibility-content'}}
            textarea#admin-accessibility-content.wekan-form-control= currentAccessibility.body
          li
            button.js-accessibility-save.primary {{_ 'save'}}

template(name='layoutSettings')
  ul#layout-setting.setting-detail
    li
      button.js-all-boards-hide-activities.primary {{_ 'hide-activities-of-all-boards'}}
    li.layout-form
      .title {{_ 'oidc-button-text'}}
      .form-group
        input.wekan-form-control#oidcBtnTextvalue(type="text", placeholder="" value="{{currentSetting.oidcBtnText}}")
    li.layout-form
      .title {{_ 'can-invite-if-same-mailDomainName'}}
      .form-group
        input.wekan-form-control#mailDomainNamevalue(type="text", placeholder="" value="{{currentSetting.mailDomainName}}")
    li.layout-form
      .title {{_ 'custom-legal-notice-link-url'}}
      .form-group
        input.wekan-form-control#legalNoticevalue(type="text", placeholder="" value="{{currentSetting.legalNotice}}")
    li.layout-form
      .title {{_ 'display-authentication-method'}}
      .form-group.flex
        input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
        label {{_ 'no'}}
    li.layout-form
      .title {{_ 'default-authentication-method'}}
      +selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
    li.layout-form
      .title {{_ 'wait-spinner'}}
      +selectSpinnerName(spinnerName=currentSetting.spinnerName)
    li.layout-form
      .title {{_ 'custom-product-name'}}
      .form-group
        input.wekan-form-control#product-name(type="text", placeholder="" value="{{currentSetting.productName}}")
    li.layout-form
      .title {{_ 'hide-logo'}}
      .form-group.flex
        input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
        label {{_ 'no'}}
    li.layout-form
      .title {{_ 'custom-login-logo-image-url'}}
      .form-group
        input.wekan-form-control#custom-login-logo-image-url(type="text", placeholder="" value="{{currentSetting.customLoginLogoImageUrl}}")
    li.layout-form
      .title {{_ 'custom-login-logo-link-url'}}
      .form-group
        input.wekan-form-control#custom-login-logo-link-url(type="text", placeholder="" value="{{currentSetting.customLoginLogoLinkUrl}}")
    li.layout-form
      .title {{_ 'custom-help-link-url'}}
      .form-group
        input.wekan-form-control#custom-help-link-url(type="text", placeholder="" value="{{currentSetting.customHelpLinkUrl}}")
    li.layout-form
      .title {{_ 'text-below-custom-login-logo'}}
      .form-group
        textarea#text-below-custom-login-logo.wekan-form-control= currentSetting.textBelowCustomLoginLogo
    li.layout-form
      .title {{_ 'custom-top-left-corner-logo-image-url'}}
      .form-group
        input.wekan-form-control#custom-top-left-corner-logo-image-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoImageUrl}}")
    li.layout-form
      .title {{_ 'custom-top-left-corner-logo-link-url'}}
      .form-group
        input.wekan-form-control#custom-top-left-corner-logo-link-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
    li.layout-form
      .title {{_ 'custom-top-left-corner-logo-height'}}
      .form-group
        input.wekan-form-control#custom-top-left-corner-logo-height(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoHeight}}")
    li.layout-form
      .title {{_ 'automatic-linked-url-schemes'}}
      .form-group
        textarea#automatic-linked-url-schemes.wekan-form-control= currentSetting.automaticLinkedUrlSchemes
    li.layout-form
      .title {{_ 'hide-card-counter-list'}}
      .form-group.flex
        input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="true" checked="{{#if currentSetting.hideCardCounterList}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="false" checked="{{#unless currentSetting.hideCardCounterList}}checked{{/unless}}")
        label {{_ 'no'}}
    li.layout-form
      .title {{_ 'hide-board-member-list'}}
      .form-group.flex
        input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="true" checked="{{#if currentSetting.hideBoardMemberList}}checked{{/if}}")
        label {{_ 'yes'}}
        input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="false" checked="{{#unless currentSetting.hideBoardMemberList}}checked{{/unless}}")
        label {{_ 'no'}}
    li
      button.js-save-layout.primary {{_ 'save'}}

template(name='selectAuthenticationMethod')
  select#defaultAuthenticationMethod
    each authentications
      if isSelected value
        option(value="{{value}}" selected) {{_ value}}
      else
        option(value="{{value}}") {{_ value}}

template(name='selectSpinnerName')
  select#spinnerName
    each spinner in spinners
      if isSelected spinner
        option(value="{{spinner}}" selected) {{_ spinner}}
      else
        option(value="{{spinner}}") {{_ spinner}}
